package tour.board.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import tour.board.to.Board;

public interface BoardDAO {

	//board 테이블에 내용을 하나 insert
	public abstract Object insertContentForNewCount(Board board)
			throws SQLException;

	//board 테이블에 답변글 하나 insert 처리
	public abstract Object insertContentForReply(Board board)
			throws SQLException;

	/**
	 * 매개변수로 받은 페이지에 보여줄 글 목록 조회
	 * @param page 글을 조회할 페이지
	 * @return ArrayList<Board> 조회한 글 목록
	 * @throws SQLException
	 */
	public abstract ArrayList<Board> selectBoardListByPage(int page)
			throws SQLException;

	//페이징 없이 전체 조회
	public abstract ArrayList<Board> selectBoardAllList() throws SQLException;

	//총 게시물 수를 return 하는 메소드
	public abstract int selectTotalContent() throws SQLException;

	//조회수를 1개 update 처리하는 메소드 (글 조회시 호출)
	public abstract int updateViewCount(int no) throws SQLException;

	//글번호로 게시물 조회하는 메소드
	public abstract Board selectContentByNO(int no) throws SQLException;

	//게시물 정보를 수정하는 메소드
	public abstract int updateContent(Board board) throws SQLException;

	//글번호로 게시물을 삭제하는 메소드
	public abstract int deleteContentByNO(int no) throws SQLException;

	//답변 처리시 restep값 update하는 메소드
	public abstract int updateRestep(int refamily, int restep)
			throws SQLException;

	public abstract ArrayList findTitle(String find);

	public abstract ArrayList mainList();

}